package com.cbd.service;

import java.util.List;

import com.cbd.dao.OperatorDao;
import com.cbd.pojo.Cbdpact;
import com.cbd.pojo.Company;
import com.cbd.pojo.Companycarport;
import com.cbd.pojo.Companypact;
import com.cbd.pojo.Landlady;
import com.cbd.pojo.Operator;
import com.cbd.pojo.PageBean;
import com.cbd.pojo.PageBean;
import com.cbd.pojo.Personalcarport;
import com.cbd.pojo.User;

public interface OperatorService {
	
	/**
	 * <p>创建时间: 2016年10月28日 上午9:33:34.</p>
	 * <p>标题: addCbdpact.</p>
	 * <p>说明: 新增外部合约.</p>
	 * @param @param cbdpact
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public int addCbdpact(Cbdpact cbdpact);
	/**
	 * <p>创建时间: 2016年10月28日 下午1:19:38.</p>
	 * <p>标题: addCompanyCarport.</p>
	 * <p>说明: 添加企业车位.</p>
	 * @param @param carport
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void addCompanyCarport(List<Companycarport> carportList);
	/**
	 * <p>创建时间: 2016年10月28日 下午2:42:58.</p>
	 * <p>标题: getAllCompany.</p>
	 * <p>说明: 签约时显示所有公司.</p>
	 * @param @return
	 * @return List<Company>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Company> getAllCompany();
	/**
	 * 默认显示的数据
	 * @param id 页面传过来的id
	 * @return
	 */
	public List<Object[]> showPIM(int id) ;
	/**
	 * 修改页面上的数据
	 * @param pwd 修改的密码
	 * @param tel 修改的电话
	 * @param id 页面的id
	 * @return 返回1表示修改成功
	 */
	public int updatePIM(String pwd,String tel,int id);
	/**
	 * <p>创建时间: 2016年10月31日 下午2:24:13.</p>
	 * <p>标题: findCbdPactIDByNo.</p>
	 * <p>说明: 通过合同编号查询合同的ID，用于绑定车位.</p>
	 * @param @param pactNO 合同编号
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public int findCbdPactIDByNo(String pactNO);
	/**
	 * <p>创建时间: 2016年11月1日 上午8:29:30.</p>
	 * <p>标题: addCompanyCarport.</p>
	 * <p>说明:批量添加车位.</p>
	 * @param @param carport
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void addCompanyCarport(Companycarport carport);
	/**
	 * <p>创建时间: 2016年11月1日 上午10:18:01.</p>
	 * <p>标题: findAllCbdPactByCbdNo.</p>
	 * <p>说明: 通过合同编号查询所有合同.</p>
	 * @param @param cbdNo
	 * @param @return
	 * @return List<Cbdpact>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Cbdpact> findAllCbdPactByCbdNo(String cbdNo);
	
	/**
	 * @Description: 通过用户的id查找操作员
	 * @param userId  
	 * @return Operator操作员  
	 * @author yangkai 
	 * @date 2016年11月1日
	 */
	public Operator findOperatorBuUserId(int userId);
	
	/**
	 * @Description: 查找操作员的分页数据
	 * @param pageBean分页的信息
	 * @return PageBean  分页的包装类
	 * @author yangkai 
	 * @date 2016年11月2日
	 */
	public PageBean findAllOperator(PageBean pageBean);
	/**
	 * <p>创建时间: 2016年11月1日 下午5:26:59.</p>
	 * <p>标题: getCompanyByID.</p>
	 * <p>说明: 通过ID查找公司信息，在解约时调用.</p>
	 * @param @param id
	 * @param @return
	 * @return Company
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public Company getCompanyByID(int id);
	/**
	 * <p>创建时间: 2016年11月1日 下午8:47:47.</p>
	 * <p>标题: canclePactByID.</p>
	 * <p>说明: 外部合约车位解约.</p>
	 * @param @param parseInt 合约的ID
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void canclePactByID(int parseInt);
	/**
	 * <p>创建时间: 2016年11月1日 下午9:26:13.</p>
	 * <p>标题: findAllCarPort.</p>
	 * <p>说明:查找平台所有的合作车位.</p>
	 * @param @return
	 * @return List<Companycarport>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Companycarport> findAllCarPort();
	/**
	 * <p>创建时间: 2016年11月2日 上午9:02:16.</p>
	 * <p>标题: addCompanyPact.</p>
	 * <p>说明: 添加租户合同.</p>
	 * @param @param companyPact
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void addCompanyPact(Companypact companyPact);
	/**
	 * <p>创建时间: 2016年11月2日 上午9:08:56.</p>
	 * <p>标题: findCompanyPactIDByNo.</p>
	 * <p>说明:根据租户合同找到租户合同ID.</p>
	 * @param @param pactNO 租户合同编号
	 * @param @return
	 * @return int 返回合同的ID
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public int findCompanyPactIDByNo(String pactNO);
	/**
	 * <p>创建时间: 2016年11月2日 上午9:55:12.</p>
	 * <p>标题: updateCompanyCarport.</p>
	 * <p>说明: 租户租用平台公司的车位.</p>
	 * @param @param carportList
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void updateCompanyCarport(List<Companycarport> carportList);
	/**
	 * <p>创建时间: 2016年11月2日 上午10:21:12.</p>
	 * <p>标题: findAllCompanyPactByPactNo.</p>
	 * <p>说明: 租户续约，查询功能</p>
	 * @param @param trim
	 * @param @return
	 * @return List<Companypact>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Companypact> findAllCompanyPactByPactNo(String trim);
	/**
	 * <p>创建时间: 2016年11月2日 下午3:42:55.</p>
	 * <p>标题: cancleCompPactByID.</p>
	 * <p>说明:租户解约.</p>
	 * @param @param parseInt
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void cancleCompPactByID(int parseInt);
	/**
	 * <p>创建时间: 2016年11月2日 下午4:39:16.</p>
	 * <p>标题: updateCbdCompanyCarport.</p>
	 * <p>说明:提供车位公司续约.</p>
	 * @param @param carportList
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void updateCbdCompanyCarport(List<Companycarport> carportList);
	/**
	 * <p>创建时间: 2016年11月2日 下午5:39:00.</p>
	 * <p>标题: findCompanyCarportByPactID.</p>
	 * <p>说明:公司解约时，用于判断是否有客户正在租用该公司的车位.</p>
	 * @param @param parseInt
	 * @param @return
	 * @return List<Companycarport>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Companycarport> findCompanyCarportByPactID(int parseInt);
	
	/**
	 * @Description: 增加操作员
	 * @param operator 
	 * @return int 0增加失败，1 增加成功 
	 * @throws
	 * @author yangkai 
	 * @date 2016年10月31日
	 */
	public int addOperator(Operator operator); 
	
	/**
	 * @Description: 根据等级和操作员的id修改其他操作员的权限
	 * @param 传进一个等级的集合以及操作员的id
	 * @return void  
	 * @author yangkai 
	 * @date 2016年11月3日
	 */
	public void updateLevelByOperatorId(List<Integer> level,int id);
	/**
	 * @Description: 删除操作员
	 * @param operatorId 操作员的id 
	 * @return int 0删除失败 1 删除成功 
	 * @throws
	 * @author yangkai 
	 * @date 2016年10月31日
	 */
	public int deleteOperator(int operatorId);
	
	/**
	 * <p>说明：得到所有没有通过审核的包租婆</p>
	 * @return
	 * @author 罗旭<br>
	 */
	public List<Landlady> findAllEnsureLandlady();
	
	/**
	 * <p>说明：得到当前页的未通过审核的包租婆</p>
	 * @param pageSize 每页显示条数
	 * @param currentPage 当前页码
	 * @return
	 * @author 罗旭<br>
	 */
	public List<Object[]> findOnePageEnsureLandlady(int pageSize ,int currentPage);
	
	/**
	 * <p>说明：通过包租婆ID得到该包租婆</p>
	 * @param ladyID 包租婆ID
	 * @return 包租婆
	 * @author 罗旭<br>
	 */
	public Landlady findLandladyByLadyID(int ladyID);
	
	/**
	 * <p>说明：通过包租婆ID 通过该包租婆的注册申请</p>
	 * <p>此方法用于管理员通过包租婆的审核</p>
	 * @param ladyID 包租婆ID
	 * @return 受影响行数
	 * @author 罗旭<br>
	 */
	public int passLandladyRequest(int ladyID);

	/**
	 * <p>创建时间: 2016年11月3日 下午1:14:41.</p>
	 * <p>标题: findAllUnAbelPort.</p>
	 * <p>说明: 显示所有待审车位.</p>
	 * @param @return
	 * @return List<Personalcarport>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 * @param pageBean 
	 */
	public PageBean findAllUnAbelPort(PageBean pageBean);
	/**
	 * <p>创建时间: 2016年11月3日 下午3:38:49.</p>
	 * <p>标题: findAllUnablePortByLadyID.</p>
	 * <p>说明: 根据包租婆查找她的所有待审核车位.</p>
	 * @param @param parseInt 包租婆的ID
	 * @param @return
	 * @return List<Landlady>
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public List<Landlady> findAllUnablePortByLadyID(int parseInt);
	/**
	 * <p>创建时间: 2016年11月3日 下午4:19:14.</p>
	 * <p>标题: accept.</p>
	 * <p>说明: 审核包租婆车位.</p>
	 * @param @param parseInt 车位的ID 
	 * @return void
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public void accept(int parseInt);
	/**
	 * <p>创建时间: 2016年11月4日 下午1:17:03.</p>
	 * <p>标题: findUnableProtByLadyID.</p>
	 * <p>说明: 分页显示包租婆名下所有未经审核的车位.</p>
	 * @param @param pageBean
	 * @param @param parseInt  包租婆ID
	 * @param @return
	 * @return PageBean
	 * @throws
	 * @author 杨文晶<br>
	 * @version 1.0.0.0
	 */
	public PageBean findUnableProtByLadyID(PageBean pageBean, int parseInt);
}
